package com.sunyur.tailor.channel.web.outer.materiel.dto;

import com.sunyur.tailor.channel.service.inner.materiel.param.Attributes;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @Author pengbing
 * @Description //批量添加物料
 * @Date 16:34 2021/12/30
 * @Param
 * @return  
 **/
@Data
public class BatchAdditionMaterielDTO implements Serializable{

	/**
	 * 物料编号
	 */

	@NotNull(message = "物料编号不能为空")
	@Size(max = 45, message = "物料编号长度不能超过45")
	private String materielCode;

	/**
	 * 后台类目编号
	 */
	@NotNull(message = "后台类目编号不能为空")
	@Size(max = 20, message = "后台类目编号长度不能超过45")
	private String categoryCode;

	/**
	 * 物料名称
	 */
	@NotNull(message = "物料名称不能为空")
	@Size(max = 512, message = "物料名称长度不能超过512")
	private String materielName;
	/**
	 * 规格
	 */
	@Size(max = 200, message = "规格长度不能超过200")
	private String specification;

	/**
	 * 品牌名称(可多个)
	 */
	@Size(max = 100, message = "品牌名称长度不能超过100")
	private String[] brandNames;

	/**
	 * 单位编码
	 */
	@NotNull(message = "单位编码不能为空")
	@Size(max = 30, message = "单位编码长度不能超过30")
	private String unitCode;

	/**
	 * 单位
	 */
	@Size(max = 50, message = "单位名称长度不能超过50")
	private String unitName;

	/**
	 * 备注
	 */
	@Size(max = 500, message = "备注长度不能超过500")
	private String remark;

	/**
	 * 物资列表
	 */
	@Valid
	@NotNull(message = "物资列表集合不能为空")
	private List<Attributes> attributes;

	/**
	 * 状态{0:未启用,1:启用}
	 */
	@NotNull(message = "状态不能为空")
    @Range(max = 1, min = 0, message = "状态不在0~1范围内")
	private Integer status;

	/**
	 * 操作人编码
	 */
	@Size(max = 100, message = "操作人编码长度不能超过100")
	private String operatorCode;

	/**
	 * 物料属性类型 1：商城内部自用 ，2：外部系统对接 （2020.1021上线）
	 */
	@Size(max = 11, message = "物料属性类型长度不能超过11")
	private Integer attributeType;
}
